import config from '../config'
import CanvasAbstract from './CanvasAbstract'
import WallModel from '../model/wall'
class Wall extends CanvasAbstract implements ICanvas {
  num(): number {
    return config.wall.num
  }
  model(): ModelConstruct {
    return WallModel
  }
  rander(): void {
    super.createModels()
    this.createBossWall()
    super.renderModel()
  }
  createBossWall() {
    const cw = config.canvas.width
    const ch = config.canvas.height
    const mw = config.model.width
    const mh = config.model.height
    const pos = [
      { x: cw / 2 - mw * 2, y: ch - mh },
      { x: cw / 2 - mw * 2, y: ch - mh * 2 },
      { x: cw / 2 - mw * 2, y: ch - mh * 3 },
      { x: cw / 2 - mw, y: ch - mh * 3 },
      { x: cw / 2, y: ch - mh * 3 },
      { x: cw / 2 + mw, y: ch - mh * 3 },
      { x: cw / 2 + mw * 2, y: ch - mh * 3 },
      { x: cw / 2 + mw * 2, y: ch - mh * 3 },
      { x: cw / 2 + mw * 2, y: ch - mh * 2 },
      { x: cw / 2 + mw * 2, y: ch - mh },
    ]
    pos.forEach(position => {
      const model = this.model() as ModelConstruct
      const instance = new model(position.x, position.y)
      this.models.push(instance)
    })
  }
}

export default new Wall('wall')
